The present invention relates to digital image processing, and more particularly to compressive encoding of images.
In many applications of digital image processing, such as JPEG, MPEG or DV, image data is compressed by successive operations of DCT (Discrete Cosine Transform), quantization, and Huffman (variable length) encoding. DCT is a pre-processing operation for image compression which converts blocks of spatial domain information of the image into blocks of frequency domain information, typically for 8×8 blocks of pixels. Generally, the transformed image has a tendency to strong correlations within a neighborhood; DCT processing concentrates a majority of the information of the image into the low frequencies. Quantization is an effective compression method which divides the DCT coefficients by an integer quantization level so as to reduce the precision (number of significant bits) of the DCT coefficients. The quantized DCT coefficients of a block are scanned from low frequency to high frequency and converted into a sequence of pairs of ‘run’ and ‘level’ parameters (run length encoding). Using a Huffman code table defined by the statistics of an image, the sequence of run-level pairs are finally converted to a sequence of Huffman (variable length) codewords. The Huffman tables for differing sets of variables of JPEG, MPEG, or DV are fixed in the specifications of these standards.
In these image compression methods, the size of the Huffman code generated is strongly dependent on the quantization level. Therefore, it is necessary to apply a suitable quantization level to adjust an output code size to a target code size. One useful quantization level approach has a feedback loop comparing a target code size and a code size actually generated by the encoder circuit. This approach enables estimation and response to a current code size accurately because actual output code size is used as a comparison to the target code size. However, there is a delay corresponding to the speed of the encoding algorithm to output the actual code. As a result, there is a delay for convergence to the target code size.